<!doctype html>
<!--
    @license
    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
  <head>
    <title>Custom Elements: imports integration</title>
    <script src="../../tools/htmltest.js"></script>
    <script src="../../tools/chai/chai.js"></script>
    <script>
      HTMLImports = {};

      var elementsCreated = 0;

      addEventListener('load', function() {
        setTimeout(function() {
          document.dispatchEvent(new CustomEvent('HTMLImportsLoaded', {bubbles: true}));
          // parsing hook available
          chai.assert.ok(HTMLImports.__importsParsingHook, 'imports parsing hook installed');
          //
          var doc = document.implementation.createHTMLDocument('Foo');
          doc.body.innerHTML = '<x-foo></x-foo>';
          var link = document.createElement('mock-link');
          link.import = doc;
          HTMLImports.__importsParsingHook(link);
          //
          addEventListener('WebComponentsReady', function() {
            chai.assert.equal(2, elementsCreated, 'HTML hook allows main document and import document to upgrade');
            done();
          })
        }, 1);
      });
    </script>
    <script src="../../../src/CustomElements/CustomElements.js"></script>
    <script>
      (function() {
        var proto = Object.create(HTMLElement.prototype);
        proto.createdCallback = function() {
          elementsCreated++;
        }

        document.registerElement('x-foo', {prototype: proto});
      })();
    </script>
  </head>
  <body>
    <x-foo></x-foo>
  </body>
</html>
